package com.zzy.service;


import org.springframework.http.ResponseEntity;

import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;

public interface ActivityConsumerService {
    /**activiti的版本*/
    public String getVersion();

    /**获取所有流程的 bpmn 文件列表 */
    public List getFlowBpmnList();

    /**获取 流程的所有节点 */
    public Map<String,Object> getAllNode(String processDefinitionId);
    /**获取 流程的所有节点 isTask 是否是任务节点  */
    public List<String> getAllNode(String processInstanceId,boolean isTask);

    /** 部署流程 */
    public Integer deployFlow(String processName);
    /**取消部署流程*/
    public String cancalDeployFlow(String processDefinitionId);
    /** 已经 部署的 流程   */
    public List<Map<String,Object>> getDeployedList();
    /** 发起流程 */
    public Map<String,Object>  startFlow(Map<String,String> param);
    /** 取消发起流程[删除已经发起的流程]*/
    public void cancalStartedFlow(String processInstanceId,String userId);


    /** 加载 由 某人 发起的流程 */
    public List<Map<String,Object>> getStartedTaskByUserid(String userId);

    /** 获取待处理的流程[获取代办]*/
    public List<Map<String,Object>>  getFlowTask(String userId);
    /** 完成任务[完成代办]*/
    public String completeTask(Map<String,String> param);
    /** 退回流程[审核不通过]*/
    public String revertTask(Map<String,String> param);

    /**  获取 用户已经完成的任务  */
    public List<Map<String,Object>> getFlowComplete(String userId);

    /** 挂起一个流程 */
    public String stopflow(String processInstanceId);
    /** 唤醒挂起的流程 */
    public String reStartflow(String processInstanceId);

    /** 获取流程 图   */
    public void getGraphics(String processInstanceId,HttpServletResponse response);
    /** 删除所有流程信息【慎用】 */
    public void clearAllData(HttpServletResponse response);

}
